package tech.aistar.day07.interfaces.fun;

/**
 * 本类用来演示:
 *
 * @author: success
 * @date: 2021/3/16 3:11 下午
 */
public class TestFunable {
    public static void main(String[] args) {
        //1. 接口和抽象类都是不允许被实例化的
        Funable fun = new Funable() {//匿名的实现类对象
            @Override
            public String find(int id) {
                return "id:"+id;
            }
        };

        System.out.println(fun.find(10));

        //但是匿名内部类的语法 - "臃肿"
        //jdk8.x以后推出了lambda表达式来代替匿名内部类的写法.
        //Funable fun2 = (x) -> {return "id:"+x;};
        //慢慢的简化
        //1. 如果方法的参数只有1个,参数的(x)的()可以省略不写
        //2. 如果实现类的方法中的方法体中的语句只有一行,{return "id:"+x;}
        //   中的{}以及return都可以省略不写
        Funable fun3 = x -> "id:"+x;
        System.out.println(fun3.find(100));
    }
}
